package org.glickr.api.push

import org.glickr.api.FlickrApiMethod
import groovy.util.slurpersupport.GPathResult

/* ----------------------------------------------------------------------------------------------------
REQUEST: flickr.push.subscribe
INFO: In ur pandas, tickling ur unicorn
(this method is experimental and may change)

AUTHENTICATION: This method requires authentication with 'read' permission.

ARGUMENTS:
api_key (Required): Your API application key.
topic (Required): The type of subscription. See flickr.push.getTopics.
callback (Required): The url for the subscription endpoint. Limited to 255 bytes, and must be unique for this user, i.e. no two subscriptions for a given user may use the same callback url.
verify (Required): The verification mode, either sync or async. See the Google PubSubHubbub spec for details.
verify_token (Optional): The verification token to be echoed back to the subscriber during the verification callback, as per the Google PubSubHubbub spec. Limited to 200 bytes.
lease_seconds (Optional): Number of seconds for which the subscription will be valid. Legal values are 60 to 86400 (1 minute to 1 day). If not present, the subscription will be auto-renewing.
woe_ids (Optional): A 32-bit integer for a Where on Earth ID. Only valid if topic is geo.
The order of precedence for geo subscriptions is : woe ids, place ids, radial i.e. the lat, lon parameters will be ignored if place_ids is present, which will be ignored if woe_ids is present.
place_ids (Optional): A comma-separated list of Flickr place IDs. Only valid if topic is geo.
The order of precedence for geo subscriptions is : woe ids, place ids, radial i.e. the lat, lon parameters will be ignored if place_ids is present, which will be ignored if woe_ids is present.
lat (Optional): A latitude value, in decimal format. Only valid if topic is geo. Defines the latitude for a radial query centered around (lat, lon).
The order of precedence for geo subscriptions is : woe ids, place ids, radial i.e. the lat, lon parameters will be ignored if place_ids is present, which will be ignored if woe_ids is present.
lon (Optional): A longitude value, in decimal format. Only valid if topic is geo. Defines the longitude for a radial query centered around (lat, lon).
The order of precedence for geo subscriptions is : woe ids, place ids, radial i.e. the lat, lon parameters will be ignored if place_ids is present, which will be ignored if woe_ids is present.
radius (Optional): A radius value, in the units defined by radius_units. Only valid if topic is geo. Defines the radius of a circle for a radial query centered around (lat, lon). Default is 5 km.
The order of precedence for geo subscriptions is : woe ids, place ids, radial i.e. the lat, lon parameters will be ignored if place_ids is present, which will be ignored if woe_ids is present.
radius_units (Optional): Defines the units for the radius parameter. Only valid if topic is geo. Options are mi and km. Default is km.
The order of precedence for geo subscriptions is : woe ids, place ids, radial i.e. the lat, lon parameters will be ignored if place_ids is present, which will be ignored if woe_ids is present.
accuracy (Optional): Defines the minimum accuracy required for photos to be included in a subscription. Only valid if topic is geo Legal values are 1-16, default is 1 (i.e. any accuracy level).
-World level is 1
-Country is ~3
-Region is ~6
-City is ~11
-Street is ~16
nsids (Optional): A comma-separated list of nsids representing Flickr Commons institutions (see flickr.commons.getInstitutions). Only valid if topic is commons. If not present this argument defaults to all Flickr Commons institutions.
tags (Optional): A comma-separated list of strings to be used for tag subscriptions. Photos with one or more of the tags listed will be included in the subscription. Only valid if the topic is tags.

EXAMPLE RESPONSE:
This method has no specific response - It returns an empty success response if it completes without error.
---------------------------------------------------------------------------------------------------- */

class pushSubscribe implements FlickrApiMethod {
    //
    //  API METHOD
    //
    static final String apiMethod = 'flickr.push.subscribe'

    //
    //  VALIDATOR
    //

    //
    //  PARAMS
    //

    //
    //  PROCESSOR
    //

    //
    //  ERROR CODES
    //
}